package myspl.v1;

import java.sql.*;


/**JDBC 可以完成CRUD操作【增删修】
 * 使用 JDBC规范  查询操作
 * 1.加载驱动：注册Musql驱动
 * 2.准备SQL：连接成功Mysql服务器
 * 3.发送SQL:执行查询操作
 * 4.查询结果集：ResultSet  接口
 * 5.处理结果集：显示查询数据
 * 6.关闭资源
 * */
public class MysqlJDBCv1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册Mysql驱动--Java--Driver接口
        Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL，同时准备发送sql工具类
        String username="root";
        String password="";
        String url="jdbc:mysql://localhost:3306/mi?characterEncoding=UTF-8";

        Connection con=DriverManager.getConnection(url,username,password);
        //打桩：测试是否连接成功
        System.out.println("测试Java连接数据库对象："+con);

        //3.发送SQL：查询mi库--book表数据
        String sql="select * from book";
        //通过连接成功Connection对象，createStatement()
        //createStatement() 连接数据库，返回Statement对象
        //Statement对象--Java--连接数据库并且返回Statement对象
        //Statement对象：执行静态sql--具备CRUD功能：查增改删
        Statement st=con.createStatement();
        //4.executeUpdate 增删改 操作 使用方法  返回  int类型  成功几条sql
        //executeQuery    查询  操作  使用方法  返回 ResultSet接口 查询结果集
         ResultSet rs=st.executeQuery(sql);
         //ResultSet 对象--Java--查询到的数据保存对象
        //5.处理结果集：显示book表所有记录数【数据】
        System.out.println("----------查询book表结果如下----------");
        //显示数据--book表哪些字段，类型必须知道
        // 取【显示】7个字段，类型 mysql int varchar
        // 取【显示】7个字段，类型 java  int  String
        // ResultSet对象提供方法  next() 依次取出每个字段记录【数据】
        //前提：不知道多少字段：依次数据--while
        while(rs.next()){ //取出每个字段记录【数据】*
            //get类型("字段名")
            int id=rs.getInt("id");
            //getString("字段名")
           String author= rs.getString("author");
            String name=rs.getString("name");
            int price=rs.getInt("price");
            String date=rs.getString("date");
            int number=rs.getInt("number");
            String discount=rs.getString("discount");
            System.out.println("作者："+author+"打折情况："+discount);
        }
        //6.关闭资源
        rs.close();
        st.close();
        con.close();
        

    }
}
